package com.fg.cloud.manager.mapper.product;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.manager.entry.product.ProductInfoEntity;
import com.fg.cloud.manager.entry.product.ProductSkuEntity;
import com.fg.cloud.manager.entry.product.vo.ProductInfoVo;
import com.fg.cloud.manager.mapper.BaseMapper;

/**
 * @author liushengchao
 * @Description: 商品基本信息mapper 
 * @date 2017年6月26日上午10:31:09
 *
 */
public interface ProductInfoMapper extends BaseMapper{
	/**
	 * @Description: 商品的批量上下架 
	 * @param ids 商品ID字符串
	 * @param isGround 上下架状态
	 * @return int
	 * @author liushengchao
	 * @date 2017年6月27日上午9:10:39
	 */
	public int productUpperAndLower(@Param("ids")String ids , @Param("isGround") int isGround);
	
	/**
	  * Description:通过商品名称查询商品信息。
	  * @param productName 商品名称
	  * @param facId 厂商ID
	  * @return
	  * @author liushengchao
	  * @date 2017年8月1日上午9:22:58
	 */
	public ProductInfoEntity selectByName(@Param("productName")String productName,@Param("facId")Long facId);
	
	/**
	  * Description:搜索框输入查询条件查询商品|商品列表
	  * @param condition 查询条件
	  * @param isGround 上架状态（经销商端访问时默认为1）
	  * @return 商品详情列表
	  * @author liushengchao
	  * @date 2017年8月2日下午3:49:58
	 */
	public List<ProductSkuEntity> selectByCondition(PageUtils<ProductSkuEntity> pageinfo);
	
	/**
	  * Description:高级搜索
	  * @param pageinfo 搜索条件信息
	  * @return 商品详情信息
	  * @author liushengchao
	  * @date 2017年8月3日下午1:54:46
	 */
	public List<ProductSkuEntity> advSearch(PageUtils<ProductSkuEntity> pageinfo);
	
	/**
	  * Description:逻辑删除商品信息
	  * @param productId 商品ID
	  * @return 
	  * @author liushengchao
	  * @date 2017年8月7日下午4:21:05
	 */
	public int deleteProduct(Long productId);
	
	long delByfacId(@Param("facId")Long facId);
	
	/**
	  * Description:获取搜索结果条目数
	  * @param pageinfo 分页条件
	  * @return
	  * @author liushengchao
	  * @date 2017年8月15日下午4:18:35
	 */
	public Long count(PageUtils<ProductSkuEntity> pageinfo);
	
	/**
	  * Description:获取搜索框搜索结果条目数
	  * @param pageinfo 分页条件
	  * @return
	  * @author liushengchao
	  * @date 2017年8月15日下午4:19:22
	 */
	public Long countTop(PageUtils<ProductSkuEntity> pageinfo);
	
	/**
	 * Description:批量逻辑删除商品
	 * @param ids
	 * @return
	 * @author liushengchao
	 * @date  2017年9月4日上午9:54:26
	 */
	public Long batchDelete(@Param("ids")String[] ids);
	
	
	/**
	 * Description:查询商品头信息计数
	 * @param pageinfo
	 * @return
	 * @author around
	 * @date 2017年9月14日上午10:16:43
	 */
	long findBaseProductCount(PageUtils<ProductInfoVo> pageinfo);
	
	/**
	 * Description:查询商品头信息
	 * @param pageinfo
	 * @return
	 * @author around
	 * @date 2017年9月14日上午9:41:05
	 */
	List<ProductInfoVo> findBaseProductInfo(PageUtils<ProductInfoVo> pageinfo);
	
	long finds(@Param("proId")Long proId, @Param("facId")Long facId);
	
	List<ProductSkuEntity> selectByProductNumber(@Param("productNumber")String productNumber,
			@Param("facId")Long facId,@Param("productId")Long productId);
}